﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class xiecheng : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        //开启协程
        StartCoroutine(Count3());
        //开启协程
        StartCoroutine(Count2());
        //开启协程
        StartCoroutine(Count1());
        //停止
        StopCoroutine(Count4());

    }

    // Update is called once per frame
    void Update()
    {

    }

    IEnumerator Count1()
    {
        yield return new WaitForSeconds(2.0f);
        Debug.Log($"{nameof(xiecheng)}: WaitForSeconds1");
        yield return null;
        Debug.Log($"{nameof(xiecheng)}: null1");
    }
    IEnumerator Count2()
    {
        /*yield return new WaitForSeconds，这个要注意的是1·实际时间等于给定的时间乘以Time.timeScale的值。
        2·触发间隔一定大等于1中计算出的实际时间，而且误差的大小取决于帧率，
        因为它是在每帧处理协程的时候去计算时间间隔是否满足条件，如果满足则继续执行。*/
        yield return new WaitForSeconds(2.0f);
        Debug.Log($"{nameof(xiecheng)}: WaitForSeconds");
    }
    IEnumerator Count3()
    {
        // yield return null表示暂缓一帧，在下一帧接着往下处理
        yield return null;
        Debug.Log($"{nameof(xiecheng)}: null");
    }
    IEnumerator Count4()
    {
        // WaitForEndOfFrame，顾名思义是在等到本帧的帧末进行在进行处理
         yield return new WaitForEndOfFrame();
    }
}
